<?php

include_once '../control/conexao.php';
include_once 'perfil.class.php';

class perfilDAO {

    public function listar() {

        $consulta = mysql_query("SELECT * FROM perfil");
        $ln = mysql_num_rows($consulta);
        $arPerfil = array();
        for ($i = 0; $i < $ln; $i++) {
            $arPerfil[$i] = new perfil();
            $arPerfil[$i]->id_perfil = mysql_result($consulta, $i, 'id_perfil');
            $arPerfil[$i]->perfil_nome = mysql_result($consulta, $i, 'perfil_nome');
        }
        return $arPerfil;
    }

    public function consultar($id) {
        $consulta = mysql_query("SELECT * FROM perfil WHERE id_perfil = '$id'");
        $perfil = new perfil();
        $perfil->id_perfil = mysql_result($consulta, 0, 'id_perfil');
        $perfil->perfil_nome = mysql_result($consulta, 0, 'perfil_nome');
        return $perfil;
    }

    public function alterar($perfil) {
        $altera = mysql_query("UPDATE perfil SET perfil_nome='$perfil->perfil_nome' WHERE id_perfil = '$perfil->id_perfil'");
        if ($altera == true) {
            echo "<script> alert ('Perfil alterado com sucesso!') </script>";
            echo "<script> history.go (-2) </script>";
        } else {
            echo "<script> alert ('Servidor com problemas, tente mais tarde') </script>";
            echo "<script> history.go (-2) </script>";
        }
    }

    public function insere($perfil) {
        $insere = mysql_query("INSERT INTO perfil (perfil_nome) VALUES ('$perfil->perfil_nome')");
        if ($insere == true) {
            echo "<script> alert ('Perfil inserido com sucesso!') </script>";
            echo "<script> history.go (-2) </script>";
        } else {
            echo "<script> alert ('Servidor com problemas, tente mais tarde') </script>";
            echo "<script> history.go (-2) </script>";
        }
    }

    public function excluir($perfil) {
        $exclui = mysql_query("DELETE FROM perfil WHERE id_perfil='$perfil->id_perfil'");
        if ($exclui == true) {
            echo "<script>alert('Perfil excluido com sucesso!')</script>";
            echo "<script>history.go(-1)</script>";
        } else {
            echo "<script>alert('Erro! Servidor com problemas, tente mais tarde')</script>";
            echo "<script>history.go(-1)</script>";
        }
    }

    public function listarMenusVinculados($id_perfil) {
        $lista = mysql_query("SELECT * FROM menu WHERE id_menu IN(SELECT menu_id_menu FROM perfil_menu WHERE perfil_id_perfil='$id_perfil')");
        $ln = mysql_num_rows($lista);
        $arMenu = array();
        for ($i = 0; $i < $ln; $i++) {
            $arMenu[$i] = new menu();
            $arMenu[$i]->id_menu = mysql_result($lista, $i, 'id_menu');
            $arMenu[$i]->menu_nome = mysql_result($lista, $i, 'menu_nome');
        }
        return $arMenu;
    }

    public function listarMenusDesvinculados($id_perfil) {
        $lista = mysql_query("SELECT * FROM menu WHERE id_menu NOT IN(SELECT menu_id_menu FROM perfil_menu WHERE perfil_id_perfil='$id_perfil')");
        $ln = mysql_num_rows($lista);
        $arMenu = array();
        for ($i = 0; $i < $ln; $i++) {
            $arMenu[$i] = new menu();
            $arMenu[$i]->id_menu = mysql_result($lista, $i, 'id_menu');
            $arMenu[$i]->menu_nome = mysql_result($lista, $i, 'menu_nome');
        }
        return $arMenu;
    }

    public function vincularMenu($id_perfil, $id_menu) {
        $vincula = mysql_query("INSERT INTO perfil_menu (perfil_id_perfil, menu_id_menu) VALUES('$id_perfil','$id_menu')");
        if ($vincula == true) {
            echo "<script>alert('Menu vinculado com sucesso!')</script>";
            echo "<script>history.go(-1)</script>";
        } else {
            echo "<script>alert('Erro! Servidor com problemas, tente mais tarde')</script>";
            echo "<script>history.go(-1)</script>";
        }
    }

    public function desvincularMenu($id_perfil, $id_menu) {
        $desvincula = mysql_query("DELETE FROM perfil_menu WHERE perfil_id_perfil='$id_perfil' AND menu_id_menu='$id_menu'");
        if ($desvincula == true) {
            echo "<script>alert('Menu desvinculado com sucesso!')</script>";
            echo "<script>history.go(-1)</script>";
        } else {
            echo "<script>alert('Erro! Servidor com problemas, tente mais tarde')</script>";
            echo "<script>history.go(-1)</script>";
        }
    }
    
    public function listarSubmenusVinculados($id_perfil) {
        $lista = mysql_query("SELECT * FROM submenu WHERE id_submenu IN(SELECT submenu_id_submenu FROM perfil_submenu WHERE perfil_id_perfil='$id_perfil')");
        $ln = mysql_num_rows($lista);
        $arSubmenu = array();
        for ($i = 0; $i < $ln; $i++) {
            $arSubmenu[$i] = new submenu();
            $arSubmenu[$i]->id_submenu = mysql_result($lista, $i, 'id_submenu');
            $arSubmenu[$i]->submenu_nome = mysql_result($lista, $i, 'submenu_nome');
        }
        return $arSubmenu;
    }

    public function listarSubmenusDesvinculados($id_perfil) {
        $lista = mysql_query("SELECT * FROM submenu WHERE id_submenu NOT IN(SELECT submenu_id_submenu FROM perfil_submenu WHERE perfil_id_perfil='$id_perfil')");
        $ln = mysql_num_rows($lista);
        $arSubmenu = array();
        for ($i = 0; $i < $ln; $i++) {
            $arSubmenu[$i] = new submenu();
            $arSubmenu[$i]->id_submenu = mysql_result($lista, $i, 'id_submenu');
            $arSubmenu[$i]->submenu_nome = mysql_result($lista, $i, 'submenu_nome');
        }
        return $arSubmenu;
    }

    public function vincularSubmenu($id_perfil, $id_submenu) {
        $vincula = mysql_query("INSERT INTO perfil_submenu (perfil_id_perfil, submenu_id_submenu) VALUES('$id_perfil','$id_submenu')");
        if ($vincula == true) {
            echo "<script>alert('Submenu vinculado com sucesso!')</script>";
            echo "<script>history.go(-1)</script>";
        } else {
            echo "<script>alert('Erro! Servidor com problemas, tente mais tarde')</script>";
            echo "<script>history.go(-1)</script>";
        }
    }

    public function desvincularSubmenu($id_perfil, $id_submenu) {
        $desvincula = mysql_query("DELETE FROM perfil_submenu WHERE perfil_id_perfil='$id_perfil' AND submenu_id_submenu='$id_submenu'");
        if ($desvincula == true) {
            echo "<script>alert('Submenu desvinculado com sucesso!')</script>";
            echo "<script>history.go(-1)</script>";
        } else {
            echo "<script>alert('Erro! Servidor com problemas, tente mais tarde')</script>";
            echo "<script>history.go(-1)</script>";
        }
    }

}
